package evol

import org.springframework.dao.DataIntegrityViolationException

class OdgovorController  extends OsnovniController {

	static allowedMethods = [save: "POST", update: "POST", delete: "POST"]

	def index() {
		redirect(action: "list", params: params)
	}

	def create() {
		[odgovorInstance: new Odgovor(params)]
	}

	def save() {

		def odgovorInstance =new Odgovor(params)

		if(!odgovorInstance.save(failOnError: true)){
			render(view: "create", model: [odgovorInstance: odgovorInstance])
			return

		}


		flash.message = message(code: 'default.created.message', args: [
			message(code: 'odgovor.label', default: 'Odgovor'),
			odgovorInstance.id
		])
		redirect(action: "show", id: odgovorInstance.id)


	}

	def show() {
		def odgovorInstance = Odgovor.get(params.id)
		if (!odgovorInstance) {
			flash.message = message(code: 'default.not.found.message', args: [
				message(code: 'odgovor.label', default: 'Odgovor'),
				params.id
			])
			redirect(action: "list")
			return
		}

		[odgovorInstance: odgovorInstance]
	}

	def edit() {
		def odgovorInstance = Odgovor.get(params.id)
		if (!odgovorInstance) {
			flash.message = message(code: 'default.not.found.message', args: [
				message(code: 'odgovor.label', default: 'Odgovor'),
				params.id
			])
			redirect(action: "list")
			return
		}

		[odgovorInstance: odgovorInstance]
	}

	def update() {
		def odgovorInstance = Odgovor.get(params.id)
		if (!odgovorInstance) {
			flash.message = message(code: 'default.not.found.message', args: [
				message(code: 'odgovor.label', default: 'Odgovor'),
				params.id
			])
			redirect(action: "list")
			return
		}

		if (params.version) {
			def version = params.version.toLong()
			if (odgovorInstance.version > version) {
				odgovorInstance.errors.rejectValue("version", "default.optimistic.locking.failure",
						[
							message(code: 'odgovor.label', default: 'Odgovor')]
						as Object[],
						"Another user has updated this Odgovor while you were editing")
				render(view: "edit", model: [odgovorInstance: odgovorInstance])
				return
			}
		}

		odgovorInstance.properties = params

		if (!odgovorInstance.save(flush: true)) {
			render(view: "edit", model: [odgovorInstance: odgovorInstance])
			return
		}

		flash.message = message(code: 'default.updated.message', args: [
			message(code: 'odgovor.label', default: 'Odgovor'),
			odgovorInstance.id
		])
		redirect(action: "show", id: odgovorInstance.id)
	}

	def delete() {
		def odgovorInstance = Odgovor.get(params.id)
		if (!odgovorInstance) {
			flash.message = message(code: 'default.not.found.message', args: [
				message(code: 'odgovor.label', default: 'Odgovor'),
				params.id
			])
			redirect(action: "list")
			return
		}

		try {
			odgovorInstance.delete(flush: true)
			flash.message = message(code: 'default.deleted.message', args: [
				message(code: 'odgovor.label', default: 'Odgovor'),
				params.id
			])
			redirect(action: "list")
		}
		catch (DataIntegrityViolationException e) {
			flash.message = message(code: 'default.not.deleted.message', args: [
				message(code: 'odgovor.label', default: 'Odgovor'),
				params.id
			])
			redirect(action: "show", id: params.id)
		}
	}

	///-----
	def list() {
		params.max = Math.min(params.max ? params.int('max') : 10, 100)
		def a=Odgovor.list(params)
		def b=  Odgovor.count()
		def c
		if(params.idIstrazivanja){
			c="da"
			//d= Istrazivanje.findById(params.idIstrazivanja)
		}

		if(params.predmet){

			def pred= Predmet.findByNaziv(params.predmet)
			ArrayList<Rezultat> rezultati//= Odgovor.findAllByIdOd(pred)
			def gedora=params
			if(gedora.get("t-param")){}
			else {
				if(gedora.get("predsmer")=="od")
					rezultati= Odgovor.findAllByIdOd(pred)
				else {
					rezultati= Odgovor.findAllByIdDo(pred)
				}}
			//a.retainAll(rezultati) -razliku
			a=rezultati
			b=rezultati.size()
		}

		if(b==0)
		{
			flash.message = message(code: 'predmet nije nadjen', args: [
				message( code: 'mrs', default: 'Odgovor'),
				params.id
			])
		}
		[odgovorInstanceList: a, odgovorInstanceTotal:b,filter:c]
	}

	
	}
